// 解题思路：
// 如果题目是 ACM 这种模式没有给矩阵，可以考虑自己写一个矩阵
// 可以定义一个 boolean[][]，马拦过河卒的位置用 true 表示
// 也可以定义一个 int[][], 马拦过河卒的位置用 0 表示

import java.util.*;
import java.io.*;

public class AdvancedPawn {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int x = in.nextInt();
        int y = in.nextInt();
        boolean[][] board = new boolean[n + 1][m + 1];
        if(x >= 0 && x <= n && y >= 0 && y <= m) board[x][y] = true;
        int[] dx = {-1, -1, -2, -2, 1, 1, 2, 2};
        int[] dy = {-2, 2, -1, 1, -2, 2, -1, 1};
        for(int k = 0; k < 8; k++){
            int i = x + dx[k];
            int j = y + dy[k];
            if(i >= 0 && i <= n && j >= 0 && j <= m){
                board[i][j] = true;
            }
        }

        long[][] dp = new long[n + 2][m + 2];
        dp[0][1] = 1;
        for(int i = 1; i <= n + 1; i++){
            for(int j = 1; j <= m + 1; j++){
                int[] point = new int[] {i - 1, j - 1};
                if(board[i - 1][j - 1] == true){
                    dp[i][j] = 0;
                }else{
                    dp[i][j] = dp[i - 1][j] + dp[i][j - 1] ;
                }
            }
        }
        System.out.println(dp[n + 1][m + 1]);
    }
}
